技術問答
技術文章
iT 徵才
聊天室
2025 鐵人賽
登入/註冊
問答
文章
Tag
邦友
鐵人賽
搜尋
第 12 屆 iThome 鐵人賽
DAY
21
0
Security
資訊安全的美味雜炊
系列 第
21
篇
[Day21] - Crypto 0x1 介紹
12th鐵人賽
halloworld
2020-10-04 15:59:04
1226 瀏覽
分享至
Day21 - Crypto 0x1 介紹
前言
今天開始連續五天會以Crypto為主題,從古典密碼學一直寫到現代的密碼學
甚麼是密碼學(Crypto)
根據維基百科的解釋,密碼學幾乎是指加密的演算法,會將普通資訊(明文)轉為難以理解及分析(密文)的資料
又可以以古典與現代密碼學做分類,之後的五天會細節及內容
現代的密碼學幾乎都是基於現在的數學難題,讓想偷密文的駭客難以破密內容
加密/解密 & 編碼 & 雜湊
今天就先觀念釐清一下
這個是初學者最容易搞混的東西,很常會將這三樣東西搞混
加密/解密
首先會產生一組密鑰,就是一把鑰匙(key)
通常就是一組字串,而不同演算法生出key的方式也不一樣
接著可以對一組原文透過key來加密,通常我們會叫他「明文」,加密完的結果就是密文
若要解密時,就需透過那把key作解密,才能看到原本的明文
也就是說,沒有key,你就無法得知原本的訊息
對稱式加密(Symmetric Encryption)
加解密接使用同一把密鑰,雙方是用同一把密鑰
當傳送方傳資料時,使用該把密鑰加密,接收方收到訊息後,用同把密鑰解密
缺點
一旦被中間人攔截密鑰,密文就有機會被駭客破解
常見對稱式加密演算法
AES、ChaCha20、3DES、Salsa20、DES
非對稱式加密(Asymmetric Encryption)
不同於對稱式加密,每個使用者都擁有一組金鑰,包含公鑰(public key)和私鑰(private key),公鑰能夠散布各地,但私鑰必須妥善保存
詳細的原理我們留RSA後面再來提
編碼(encode)
只是將資料透過人們討論的規則,對應到另外一項符號或者數字
編碼的運用範圍也很廣
有包含字串的、音訊的、視訊的...
並不需要密鑰,你只需要知道編碼的規則,人人都可以解碼
常見的字元編碼
base64, ASCII, Unicode, urlencode
ASCII
ASCII編碼只有0~127,因為要留一個位元給檢查碼
example
0
= 48
A
= 65
a
= 97
base64
一個單元8-bits
Base64一單元只有6bits
如果原文不整除3,會出現相對應的
=
詳情原理可以參考:
Base64
雜湊(hash)
將長度不固定的資料,映射到固定長度的字串,一旦資料被座雜湊之後,是
不可逆
的
在帳戶系統當中,通常會將密碼hash後存入資料庫中,
通常
並不會用明文方式直接將密碼存在資料庫
這樣好處是萬一駭客偷走了帳戶系統的資料庫,並不能直接拿到密碼,因為hash是不可逆的
另外,帳戶系統對密碼還會加上salt(亂數),再拿去hash,會相對更安全一些
常見的雜湊方式如
MD5, SHA1, SHA256...
風險
MD5, SHA1已被破解,在網路上甚至有網站能將hash過後的值找出原本明文
ex:
https://www.cmd5.com/
現在建議使用
bcrypt, SHA256, SHA512...等方法
ref
https://medium.com/@RiverChan/%E5%9F%BA%E7%A4%8E%E5%AF%86%E7%A2%BC%E5%AD%B8-%E5%B0%8D%E7%A8%B1%E5%BC%8F%E8%88%87%E9%9D%9E%E5%B0%8D%E7%A8%B1%E5%BC%8F%E5%8A%A0%E5%AF%86%E6%8A%80%E8%A1%93-de25fd5fa537
https://medium.com/d-d-mag/%E7%82%BA%E4%BB%80%E9%BA%BC%E4%BD%A0%E9%9C%80%E8%A6%81%E6%87%82%E4%B8%80%E9%BB%9E%E5%AF%86%E7%A2%BC%E5%AD%B8-709c090452aa
https://zh.wikipedia.org/zh-tw/%E5%AF%86%E7%A2%BC%E5%AD%B8%E4%B8%BB%E9%A1%8C%E5%88%97%E8%A1%A8
https://blog.m157q.tw/posts/2017/12/25/differences-between-encryption-and-hashing/
留言
追蹤
檢舉
上一篇
[Day20] - Rev 0x5 linux逆逆實戰
下一篇
[Day22] - Crypto 0x2 古典
系列文
資訊安全的美味雜炊
共
30
篇
目錄
RSS系列文
訂閱系列文
35
人訂閱
26
[Day26] - kali 0x1 介紹
27
[Day27] - kali 0x2 滲透工具
28
[Day28] - kali 0x3 破密工具
29
[Day29] - kali 0x4 Metasploit
30
[Day30] - 完賽、感想、心得
完整目錄
熱門推薦
{{ item.subject }}
{{ item.channelVendor }}
|
{{ item.webinarstarted }}
|
{{ formatDate(item.duration) }}
直播中
立即報名
尚未有邦友留言
立即登入留言
iThome鐵人賽
參賽組數
902
組
團體組數
37
組
累計文章數
19855
篇
完賽人數
528
人
看影片追技術
看更多
{{ item.subject }}
{{ item.channelVendor }}
|
{{ formatDate(item.duration) }}
直播中
熱門tag
15th鐵人賽
16th鐵人賽
13th鐵人賽
14th鐵人賽
17th鐵人賽
12th鐵人賽
11th鐵人賽
鐵人賽
2019鐵人賽
javascript
2018鐵人賽
python
2017鐵人賽
windows
php
c#
linux
windows server
css
react
熱門問題
防火牆fortinet只開放line 問題
Gem如何找到該功能?!我是Gemini付費使用者
中華電信光纜當骨幹...SWminigbic無法正常使用
我在做 packet tracer 的題目,想請問一下該怎麼做
dhcp 在client 端機碼設定的問題
照片破圖或是有損壞,如何修復?
熱門回答
防火牆fortinet只開放line 問題
中華電信光纜當骨幹...SWminigbic無法正常使用
我在做 packet tracer 的題目,想請問一下該怎麼做
dhcp 在client 端機碼設定的問題
熱門文章
Agentic AI 開發實戰:我是如何設計 “Code + LLM” 混合架構,解決 AI品質不穩的問題?
ISC2 CC 證照考試筆記和影片
VScode 開發應用系統專案(10) - Spring boot MVC 應用系統設計(1)
【資料治理實戰回憶錄】04. 拆解元數據 (下):讓資料「用起來」
[gem5] 該怎麼編譯以及運行 gem5 ?
IT邦幫忙
×
標記使用者
輸入對方的帳號或暱稱
Loading
找不到結果。
標記
{{ result.label }}
{{ result.account }}